package dados;

import java.io.Serializable;
import java.util.ArrayList;

/**
 *
 * @author Yuri Maia
 */
public class BancoQuestoes extends ArrayList<QuestaoProva> implements Serializable{
	private static BancoQuestoes instancia = null;
    private static int escolha;
    private static int simulado;

    public static int getSimulado() {
		return simulado;
	}

	public static void setSimulado(int simulado) {
		BancoQuestoes.simulado = simulado;
	}

	private BancoQuestoes(){    }
    
    public void adicionarQuestaoProva(){
        instancia.add(new QuestaoProva());
    }
    
    public void editarQuestaoProva(int indice, QuestaoProva questao){
        try{
            instancia.set(indice, questao);
        } catch(IndexOutOfBoundsException e){	}
    }
    
    public void removerQuestaoProva(int indice){
        try{
            instancia.remove(indice);
        } catch(IndexOutOfBoundsException e){	}
    }
    
    public int getTamanhoBanco(){
        return instancia.size();
    }
    
    public int getUltimoIndice(){
        return instancia.size() - 1;
    }
    
    public ArrayList<QuestaoProva> getArrayListQuestaoProva(){
        if(instancia == null) {
            instancia = new BancoQuestoes();
        }
        ArrayList<QuestaoProva> questoes = new ArrayList<QuestaoProva>();
        for(int i = 0; i < instancia.size(); i++ ) {
            questoes.add(instancia.get(i));
        }
        return questoes;
    }
    
    public static BancoQuestoes getInstancia(){
        if(instancia == null)
            instancia = new BancoQuestoes();
        return instancia;
    }
    
    public static void setInstancia(ArrayList<QuestaoProva> lista) {
        if (lista != null) {
            instancia = new BancoQuestoes();
            int i = 0;
            for (QuestaoProva prova : lista) {
                instancia.add(prova);
                i++;
            }
        }
    }
    
    public static void setInstancia(ArrayList<QuestaoProva> lista, int alg) {
        if (lista != null) {
            instancia = new BancoQuestoes();
            int i = 0;
            for (QuestaoProva prova : lista) {
                instancia.add(prova);
                i++;
            }
        }
        instancia.setEscolha(alg);
    }
    
    public static void setInstancia(ArrayList<QuestaoProva> lista, int alg, int sim) {
        if (lista != null) {
            instancia = new BancoQuestoes();
            int i = 0;
            for (QuestaoProva prova : lista) {
                instancia.add(prova);
                i++;
            }
        }
        instancia.setEscolha(alg);
        instancia.setSimulado(sim);
    }
    
    public static void setInstancia(BancoQuestoes banco){   
        instancia = banco;
    }
    
    public QuestaoProva getQuestaoProva(int indice){
        return instancia.get(indice);
    }

	public static void setEscolha(int escolha) {
		BancoQuestoes.escolha = escolha;
	}

	public static int getEscolha() {
		return escolha;
	}
}